, , , , ,

Comment envoyer l'IP de sa box automatiquement par courriel

Pré-requis : savoir envoyer un courriel par SMTP en ligne de commande

Envoyer l'IP externe de sa box par courriel dans un script

Récupérer l'IP externe de sa box

GET whatismyip.fr/raw
nano ~/getip
GET whatismyip.fr/raw > .myip
echo "" >> .myip
sleep 1
GET whatismyip.fr/raw >> .myip
echo "" >> .myip
sleep 1
GET whatismyip.fr/raw >> .myip
echo "" >> .myip
sh ~/getip
cat ~/.myip
92.122.18.135
92.122.18.135
92.122.18.135

Envoyer son IP de box à son courriel au bureau

par msmtp
cat ~/.myip | msmtp johnny@whitehouse.gov
par ssmtp
cat ~/.myip | mail johnny@whitehouse.gov
Sans préciser Subject:DeQuoiOnParle le message n'aura pas de sujet. Il faut donc prévoir de le rajouter en tête du fichier ~/.myip

Compléter le script : récupérer l'IP ET l'envoyer

Attention, seule la première ligne ne contient qu'un signe > (ce qui crée ou écrase le fichier). Toutes les autres lignes contiennent 2 signes » (ce qui complète un fichier existant, ou le crée sinon).
nano ~/getip
Subject:MaBoxMeParle > .myip
GET whatismyip.fr/raw >> .myip 
echo "" >> .myip
sleep 1
GET whatismyip.fr/raw >> .myip
echo "" >> .myip
sleep 1
GET whatismyip.fr/raw >> .myip
echo "" >> .myip
cat .myip | msmtp johnny@whitehouse.gov
chmod 700 ~/getip

Utilisation

sh ~/getip

Vérification

Automatisation de l'envoi

Par la crontab

Le système crontab intégré à unix/linux permet une programmation simple de l'exécution de commandes et scripts.

Modification de la crontab

crontab -l > cron
On évite systématiquement l'édition par la commande crontab -e, parce que la perte de 50 lignes de programmation sur un serveur de production, ça fait toujours chaud aux oreilles !
nano cron
23 8,12,15,18 1-5 * * sh /home/johnny/getip
# à 08:23 12:23 15:23 et 18:23, du 1er au 5ème jour de la semaine
# parce que les soirs et week-end je suis à la maison
# et que c'est encore plus simple de récupérer mon IP

Injection des modifications de la crontab

crontab ~/cron
Vérification de la crontab
crontab -l
...
23 8,12,15,18 1-5 * * sh /home/johnny/getip
...

FIXME (23 8,12,15,18 1-5 * *) donne bien les jours 1 à 5 dans la semaine alors que (23 8,12,15,18 * * 1-5) donne les jours 1 à 5 du mois

Nettoyage
rm ~/cron

Par autre chose que la crontab…

Partie à compléter
Remarques :
  • Si l'envoi répété de l'IP sature votre boîte de courriel, à vous de modifier la programmation.

Références

Contributeurs

kerkael création de la page le 23/08/2009